package com.bringway.p2p.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

/*
 * 
 * @ClassName: POSService
 * @Description: pos业务接口
 * @author: 邵jing
 * @date: 2016年2月15日 下午3:40:49
 */
public interface POSService {

	/**
	 * 
	 * @方法名称: savePosCode
	 * @方法描述: 保存pos单号s
	 * @时间:2016年2月15日下午3:56:13
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	boolean savePosCode(JSONObject parms);

	/**
	 * @方法名称: searchPos
	 * @方法描述: 查询pos单号
	 * @时间:2016年2月16日上午11:15:12
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	List searchPos(JSONObject parms);

	/**
	 * 
	 * @方法名称: getTotalItem
	 * @方法描述: 查詢查询总记录数
	 * @时间:2016年2月16日上午11:39:57
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	int getTotalItem(JSONObject parms);
	
	/**
	 * @方法名称: posCodeInfoSearch
	 * @方法描述: pos单号信息查询
	 * @时间:2016年2月16日下午2:48:27
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	List posCodeInfoSearch(JSONObject parms);
	
	/**
	 * @方法名称: posCodeInfoSearchItems
	 * @方法描述: TODO
	 * @时间:2016年2月16日下午5:55:15
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	int posCodeInfoSearchItems(JSONObject parms);
	
	/**
	 * 
	 * @方法名称: posShenHe
	 * @方法描述: pos单号审核
	 * @时间:2016年2月17日下午5:19:59
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	boolean posShenHe(JSONObject parms);

	/**
	 *  查询pos单投资待回款List
	 * */
	List<HashMap<String,String>> queryPosCodeHkList(JSONObject params);

	/**
	 *  查询pos单投资待回款总数
	 * */
	int getPosCodeHkCount(JSONObject params);

	/**
	 *  确认保存pos单投资回款，打款提现
	 * */
	String savePosHk(JSONObject params);

	/**
	 * 是否已使用该pos单号审核通过，完成过投资
	 * true : 已使用
	 * false: 未使用
	 * */
	boolean isHasTzrxxByPoscode(JSONObject parms);

	/**
	 * pos单投资信息是否符合还款日期
	 * if 当前日期 >= 还款日期 true
	 * 不符合 false
	 * */
	boolean isReadyHk(JSONObject params);

	
	public void deletePos(JSONObject params);

	Map<String, Object> getPosInfo(JSONObject params);

	/**
	 * 是否可以批量回款，
	 * */
	String isReadyPlHk(JSONObject params);
	/**
	 *保存批量回款，
	 * */
	String savePosPlHk(JSONObject params);

	/**
	 * 是否已回款
	 * true : 已回款
	 * false : 未回款
	 * */
	boolean isHasHkByPoscode(JSONObject params);
	/**
	 * 批量处理
	 * 是否已回款
	 * true : 已回款
	 * false : 未回款
	 * */
	String isHasPlHkByPoscode(JSONObject params);


	/**
	 * @方法名称: posZbShenHe
	 * @方法描述: pos单号总部审核 
	 * @时间:2016年3月22日下午5:51:29
	 * @author:邵jing
	 * @param parms
	 * @return
	 */
	boolean posZbShenHe(JSONObject parms);


	/**
	 * 判断POS单所属客户信息是否为真实客户
	 * @param 手机号码
	 * @param 客户姓名
	 * @param 客户身份证号码
	 * @return true : 客户信息匹配成功，验证通过
	 * @return false : 客户信息匹配失败，验证失败
	 * */
	boolean isRealCustomer(JSONObject parms);

	/**
	 * POSCODE是否已存在
	 * @param POS_CODE
	 * true 存在
	 * false 不存在
	 * */
	boolean ishasPoscodeInfo(JSONObject parms);

	/**
	 * 查询未到计息日的POS单投资信息(可撤销投资)列表
	 * @param start
	 * @param limit
	 * */
	List<Map<String,Object>> queryCzPoscodeTzrxxList(JSONObject params);
	/**
	 * 查询未到计息日的POS单投资信息(可撤销投资)总数
	 * */
	int getCzPoscodeTzrxxCount(JSONObject params);

	/**
	 * 分公司财务发起撤销pos单投资申请流程
	 * */
	void saveCxsq(JSONObject params);

	/**
	 * 是否已经撤销申请
	 * */
	boolean isHasCxsq(JSONObject params);

	/**
	 * 总部审核pos单撤销列表信息
	 * */
	List<Map<String, Object>> queryCzPoscodeTzrxxZbshList(JSONObject params);
	/**
	 * 总部撤销审核数量
	 * */
	int getCzPoscodeTzrxxZbshCount(JSONObject params);

	/**
	 * poscode是否可以撤销审核
	 * true : 可以审核
	 * false : 不能审核
	 * */
	boolean isReadyCxsh(JSONObject params);
	
	/**
	 * 保存撤销审核信息
	 * */
	void saveCxsh(JSONObject params);
	
	


}
